package main

import (
	"fmt"
	"reflect"
)

func main() {

	var a *int
	// IsNil() 判断指针是否为空？
	fmt.Println("var a *int isNil", reflect.ValueOf(a).IsNil())

	// nil值是零值吗？
	fmt.Println("nil Isvaild", reflect.ValueOf(nil).IsValid())
	b := struct {

	}{}
	fmt.Println("不存在结构体成员", reflect.ValueOf(b).FieldByName("abc").IsValid())

	fmt.Println("不存在结构体方法", reflect.ValueOf(b).MethodByName("abc").IsValid())

	c := map[string]int{}
	fmt.Println("map中不存在的键", reflect.ValueOf(c).MapIndex(reflect.ValueOf("小王子")).IsValid())
}
